package org.lestr.secuel.m3ds;

public interface Camera {


    /** Défini le nom de l'objet */
    public void setNom(String nom);


    /** Retourne le nom de l'objet */
    public String getNom();


    /** Ajoute un écouteur */
    public void ajoutEcouteur(CameraEcouteur écouteur);


    /** Retire un écouteur */
    public void retraitEcouteur(CameraEcouteur écouteur);


    /** Positionne selon X */
    public void setX(double x);


    /** Retourne X */
    public double getX();


    /** Positionne selon Y */
    public void setY(double y);


    /** Retourne Y */
    public double getY();


    /** Positionne selon Z */
    public void setZ(double z);


    /** Retourne Z */
    public double getZ();


    /** Positionne selon l'angle X */
    public void setAngleX(double x);


    /** Retourne l'angle X */
    public double getAngleX();


    /** Positionne selon l'angle Y */
    public void setAngleY(double y);


    /** Retourne l'angle Y */
    public double getAngleY();


    /** Positionne selon l'angle Z */
    public void setAngleZ(double z);


    /** Retourne l'angle Z */
    public double getAngleZ();


    /** Avance la caméra selon sa direction */
    public void avancer(double distance);


    /** Pointe la caméra vers le point spécifié */
    public void pointer(double x,
                        double y,
                        double z);


    public interface CameraEcouteur {


        /** La position de la caméra a changé */
        public void caméraDéplacée(Camera caméra,
                                   double deltaX,
                                   double deltaY,
                                   double deltaZ);


        /** L'orientation de la caméra a changé */
        public void caméraOrientée(Camera caméra,
                                   double deltaAngleX,
                                   double deltaAngleY,
                                   double deltaAngleZ);


    }// FIN Interface


}// FIN Interface
